﻿# 加载Word COM对象
$word = New-Object -ComObject Word.Application
$word.Visible = $false  # 设置为false以避免在处理时显示Word应用

# 创建新的文档
$document = $word.Documents.Add()

# 设置页面边距 (单位是磅，1厘米=28.3465磅)
$pageSetup = $document.PageSetup
$pageSetup.TopMargin = 3.7 * 28.3465
$pageSetup.BottomMargin = 3.5 * 28.3465
$pageSetup.LeftMargin = 2.8 * 28.3465
$pageSetup.RightMargin = 2.6 * 28.3465

# 设置默认字体为仿宋三号字 (16磅)
$selection = $word.Selection
$selection.Font.Name = "仿宋_GB2312"
$selection.Font.Size = 16

# 定义字典
$dictionary = @{
    "党员" = "发展党员";
    "党日" = "党日活动";
    "党课" = "党课";
    "理论学习" = "理论学习";
}

# 创建一个简单的docx文件（这里仅演示，实际可能需要更复杂的文档内容）
$filename = "党员1.docx"
$filePath = "E:\$filename"  # 假设先将文件保存到临时位置

# 使用New-Item创建一个空的.docx文件作为占位符
New-Item -Path $filePath -ItemType File

# 根据文件名匹配字典中的键，并创建相应的目录
$matchFound = $false
foreach ($key in $dictionary.Keys) {
    if ($filename -like "*$key*") {
        $targetDir = "E:\2025年党建工作\$($dictionary[$key])"
        New-Item -Path $targetDir -ItemType Directory -Force
        Move-Item -Path $filePath -Destination "$targetDir\$filename" -Force
        Start-Process "$targetDir\$filename"
        $matchFound = $true
        break
    }
}

# 如果没有匹配到任何键，则将文件保存到默认目录
if ($matchFound) {
    $finalFilePath = Join-Path -Path $targetDir -ChildPath $filename
} else {
    # 如果没有匹配到任何键，则将文件保存到默认目录
    $defaultDir = "E:\2025年党建工作"
    New-Item -Path $defaultDir -ItemType Directory -Force
    $finalFilePath = Join-Path -Path $defaultDir -ChildPath $filename
}

# 移动文件到最终位置
Move-Item -Path $filePath -Destination $finalFilePath -Force
$document.SaveAs([ref]$finalFilePath)

# 关闭Word应用程序
$document.Close()
$word.Quit()

# 清理COM对象
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($document) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($word) | Out-Null
[GC]::Collect()
[GC]::WaitForPendingFinalizers()
# 使用 -LiteralPath 参数以确保正确处理路径中的特殊字符（如中文）
Start-Process -LiteralPath $finalFilePath